package es.aqua.aquac.il.domain;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import es.aqua.aquac.util.Constants;

@Entity
@Table(name = "LECTURAS")
@NamedQueries({

@NamedQuery(name = "Lectura.obtenerLecturasPropietario", query = "select l from Lectura l where " + "l.propietario.id=:id order by fecha")

})
public class Lectura extends BaseDomainObject implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 572632225603495717L;

	/**
	 * Id
	 */
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	@Column(name = "LECTURA_ID")
	private Integer id;

	/**
	 * Propietario
	 */
	@ManyToOne
	@JoinColumn(name = "PROPIETARIO_ID", nullable = false)
	private Propietario propietario = new Propietario();

	/**
	 * Hasta
	 */
	@Column(name = "FECHA", nullable = false)
	@Temporal(TemporalType.DATE)
	private Date fecha;

	/**
	 * Consumo
	 */
	@Column(name = "CONSUMO", nullable = false, precision = Constants.DB_TAM_NUMERO)
	private Double consumo;

	/**
	 * @return the id
	 */
	public Integer getId() {
		return id;
	}

	/**
	 * @param id
	 *            the id to set
	 */
	public void setId(Integer id) {
		this.id = id;
	}

	/**
	 * @return the propietario
	 */
	public Propietario getPropietario() {
		return propietario;
	}

	/**
	 * @param propietario
	 *            the propietario to set
	 */
	public void setPropietario(Propietario propietario) {
		this.propietario = propietario;
	}

	/**
	 * @return the fecha
	 */
	public Date getFecha() {
		return fecha;
	}

	/**
	 * @param fecha
	 *            the fecha to set
	 */
	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}

	/**
	 * @return the consumo
	 */
	public Double getConsumo() {
		return consumo;
	}

	/**
	 * @param consumo
	 *            the consumo to set
	 */
	public void setConsumo(Double consumo) {
		this.consumo = consumo;
	}

}
